package email.mensagemAnexo;

import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


public class Hotmail {

	public static void main(String[] args) {
		
		new Hotmail().hotmail();
		
	}

	public void hotmail() {

		Properties props = new Properties();
		
		props.put("mail.transport.protocol", "smtp");    
		props.put("mail.smtp.host", "smtp.live.com");    
		props.put("mail.smtp.socketFactory.port", "587");    
		props.put("mail.smtp.socketFactory.fallback", "false");    
		props.put("mail.smtp.starttls.enable", "true");    
		props.put("mail.smtp.auth", "true");    
		props.put("mail.smtp.port", "587");		
		
		Session session = Session.getDefaultInstance(props,new javax.mail.Authenticator() {
			
			protected PasswordAuthentication getPasswordAuthentication() {
				return new PasswordAuthentication("diego_macario@hotmail.com", "b@mbino1983");
			}
		});
		
		File folder = new File("C:\\Tcc\\anexos\\");
		
		List<File> listFiles = Arrays.asList(folder.listFiles());
		
		for (int i = 0; i < 100; i++) {
			
			try {
				
				Message message = new MimeMessage(session);
				
				message.setFrom(new InternetAddress("diego_macario@hotmail.com")); 
				
				Address[] toUser = InternetAddress.parse("xmluka@gmail.com");  
				
				int posicao = (int) ((Math.random() * listFiles.size()) + 1); 
				
				MimeBodyPart mimeBodyPart = new MimeBodyPart();
				mimeBodyPart.setText("");
				
				MimeBodyPart mimeBodyPartFile = new MimeBodyPart();
				FileDataSource fileDataSource = new FileDataSource(new File(listFiles.get(posicao).getPath()));
				mimeBodyPartFile.setDataHandler(new DataHandler(fileDataSource));
				mimeBodyPartFile.setFileName(fileDataSource.getName());
				
				Multipart multipart = new MimeMultipart();
				multipart.addBodyPart(mimeBodyPart);
				multipart.addBodyPart(mimeBodyPartFile);
				
				message.setContent(multipart);
				
				message.setRecipients(Message.RecipientType.TO, toUser);
				message.setSubject(Long.toHexString(Double.doubleToLongBits(Math.random())));
				
				Transport.send(message);
				
			} catch (MessagingException e) {
				throw new RuntimeException(e);
			}
			
		}
		
	}
	
}
